package com.wzdigit.wms.basic.domain.basic;

import java.math.BigDecimal;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.wzdigit.framework.orm.model.BasicDomain;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 库位表
 * </p>
 *
 * @author 
 * @since 2020-12-28
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("WMS_LOCATION")
public class Location extends BasicDomain {

	private static final long serialVersionUID = 6569264339101685916L;

	/**
	 * 库位ID
	 */
	@TableId("LOC_ID")
	private Integer locId;

	/**
	 * 库区ID
	 */
	@TableField("ZONE_ID")
    private Integer zoneId;

	/**
	 * 库位代码
	 */
	@TableField("LOC_CODE")
    private String locCode;

	/**
	 * 库位描述
	 */
	@TableField("LOC_DESC")
    private String locDesc;

	/**
	 * 库位显示
	 */
	@TableField("LOC_DISP")
    private String locDisp;

	/**
	 * 电子标签ID
	 */
	@TableField("RFID_ID")
    private Integer rfidId;

	/**
	 * 货架ID
	 * 表示入库流程中，需要上架到该库区的货物，将首先移动到制定的库位作为上架过渡。通常情况下可跳过，不设置
	 */
	@TableField("RACK_ID")
    private Integer rackId;

	/**
	 * 使用方式/用途：
	 * --枚举类型
	 * 箱拣货库位、件拣货库位、箱/件拣货库位、存储库位、过渡库位、理货站和组装工作区
	 */
	@TableField("LOC_USAGE")
    private Integer locUsage;

	/**
	 * 库位类型：
	 * --枚举类型
	 * 地面平仓、重力式货架、货架和窄巷道货架
	 */
	@TableField("LOC_TYPE")
    private Integer locType;

	/**
	 * 属性
	 * --枚举类型
	 * 正常、封存、管控和禁入
	 */
	@TableField("LOC_ATTR")
    private Integer locAttr;

	/**
	 * 库位处理：
	 * --枚举类型
	 * 识别在库位中将存放的产品包装的类型。系统提供以下 3 种类型：仅限于箱、仅限于托盘和其他。
	 */
	@TableField("LOC_HANDLING")
    private Integer locHandling;

	/**
	 * 库存/存储环境
	 */
	@TableField("STORE_ENV")
    private String storeEnv;

	/**
	 * 重量限制
	 */
	@TableField("WEIGHT_CAPACITY")
    private BigDecimal weightCapacity;

	/**
	 * 体积限制
	 */
	@TableField("CUBIC_CAPACITY")
    private BigDecimal cubicCapacity;

	/**
	 * 数量限制
	 */
	@TableField("COUNT_CAPACITY")
    private Integer countCapacity;

	/**
	 * 托盘数量限制
	 */
	@TableField("PLT_COUNT")
    private Integer pltCount;

	/**
	 * 箱子数量限制
	 */
	@TableField("CS_COUNT")
    private Integer csCount;

	/**
	 * SKU限制
	 */
	@TableField("SKU_CAPACITY")
    private Integer skuCapacity;

	/**
	 * 上架顺序：
	 */
	@TableField("PUTAWAY_SEQ")
    private String putawaySeq;

	/**
	 * 拣货顺序：
	 */
	@TableField("PICK_SEQ")
    private String pickSeq;

	/**
	 * 忽略 ID：
	 */
	@TableField("LOSE_ID_FLAG")
    private Integer loseIdFlag;

	/**
	 * 允许混放产品：
	 */
	@TableField("MIX_FLAG")
    private Integer mixFlag;

	/**
	 * 允许混放批次：
	 */
	@TableField("MIX_LOT_FLAG")
    private Integer mixLotFlag;

	/**
	 * 周转需求：
	 * --枚举类型
	 * 库位的周转类型，如快速周转、中速周转和慢速周转。通常与产品 ABC分级配合使用。
	 */
	@TableField("DEMAND")
    private Integer demand;

	/**
	 * 校验码：
	 * 操作库位确认时，可通过扫描校验码确认库位，而不是仅仅根据库位 ID。
	 */
	@TableField("VALIDATION_CODE")
    private String validationCode;

	/**
	 * 长
	 */
	@TableField("LENGTH")
    private Integer length;

	/**
	 * 宽
	 */
	@TableField("WEIDTH")
    private Integer weidth;

	/**
	 * 高
	 */
	@TableField("HEIGHT")
    private Integer height;

	/**
	 * X 坐标
	 * 库位的 X、Y、Z 坐标和层数，空间定位信息，多用于自动化仓库，在库位就近逻辑计算中也有使用。
	 */
	@TableField("X_COORD")
    private Integer xcoord;

	/**
	 * Y 坐标
	 * 库位的 X、Y、Z 坐标和层数，空间定位信息，多用于自动化仓库，在库位就近逻辑计算中也有使用。
	 */
	@TableField("Y_COORD")
    private Integer ycoord;

	/**
	 * Z 坐标
	 * 库位的 X、Y、Z 坐标和层数，空间定位信息，多用于自动化仓库，在库位就近逻辑计算中也有使用。
	 */
	@TableField("Z_COORD")
    private Integer zcoord;

	/**
	 * 层数
	 * 库位的 X、Y、Z 坐标和层数，空间定位信息，多用于自动化仓库，在库位就近逻辑计算中也有使用。
	 */
	@TableField("LOC_LEVEL")
    private Integer locLevel;

	/**
	 * X像素
	 * 图形化界面配置使用
	 */
	@TableField("X_PIXEL")
    private Integer xpixel;

	/**
	 * Y像素
	 * 图形化界面配置使用
	 */
	@TableField("Y_PIXEL")
    private Integer ypixel;

    /**
     * 状态
     */
    @TableField("STATUS")
    private Integer status;

    /**
     * 备注
     */
    @TableField("COMMENTS")
    private String comments;

    /**
     * 用户自定义字段1（使用方式/用途名称）
     */
    @TableField("UDF1")
    private String udf1;

    /**
     * 用户自定义字段2（库位类型名称）
     */
    @TableField("UDF2")
    private String udf2;

    /**
     * 用户自定义字段3（属性名称）
     */
    @TableField("UDF3")
    private String udf3;

    /**
     * 用户自定义字段4（库位处理名称）
     */
    @TableField("UDF4")
    private String udf4;

    /**
     * 用户自定义字段5（周转需求名称）
     */
    @TableField("UDF5")
    private String udf5;

}